// 校验插入的链接是否合法
import { Message } from '@arco-design/web-vue';
import { LinkArticleData, LinkData } from '../../custom-types';
import { getArticleTitleById } from '@/api/common';

// 根据文章id查询文章链接
// 没有填自定义标题则需要查询文章标题再填充
// 如果有填自定义标题，则直接看这个文章存不存在
// 引用长文标题可以不填
// 引用短文标题是必填
export async function checkArticleId(params: LinkArticleData): Promise<boolean | LinkData> {
  const { articleId, title } = params;
  if (!articleId) {
    Message.warning('文章ID不能为空');
    return false;
  }
  
  // articleId 标准的文章id必须全部是数字
  if (!/^\d+$/.test(articleId)) {
    Message.warning('请输入标准的文章ID');
    return false;
  }

  try {
    let articleTitleAndLink: LinkData = { text: '', link: '' };
    const res = await getArticleTitleById(articleId);
    if(res && res.code === 0){
      const articleTitle = res.data;
      if (articleTitle) {
        articleTitleAndLink.text = title || articleTitle;
      } else {
        if (!title) throw new Error('请输入文章的标题');
        articleTitleAndLink.text = title;
      }
  
      articleTitleAndLink.link = `/article/getDetails/${articleId}`;
      return articleTitleAndLink;
    }  
  } catch (error) {
    Message.error(error.message || '操作失败，请稍后再试');
    return false;
  }
}
